package com.esun.service.service;

import com.esun.api.request.ExampleRequestDto;
import com.esun.api.response.ExampleResponseDto;
import com.esun.dao.eo.ExampleEo;
import com.github.pagehelper.PageInfo;

import java.util.List;

/**
 * 样例表(Example)表服务接口
 *
 * @author John.xiao
 * @since 2021-08-17 15:36:40
 */
public interface ExampleService {

    /**
     * 按实体类分页查询多条数据
     *
     * @param requestDto    请求实体
     * @param sortParamList 排序参数列表
     * @param sortList      排序列表
     * @return 对象列表
     */
    PageInfo<ExampleResponseDto> getExampleByPage(ExampleRequestDto requestDto);


    /**
     * 批量新增数据
     *
     * @param requestDtoList 实例对象列表
     * @return 实例对象列表
     */
    List<ExampleResponseDto> addExample(List<ExampleRequestDto> requestDtoList);


    /**
     * 批量修改数据
     *
     * @param requestDtoList 请求实体列表
     * @return 实例对象列表
     */
    List<ExampleResponseDto> updateExample(List<ExampleRequestDto> requestDtoList);


    /**
     * 通过实体类批量删除数据
     *
     * @param requestDtoList 请求实体列表
     * @return 实例对象列表
     */
    List<ExampleResponseDto> deleteExample(List<ExampleRequestDto> requestDtoList);

    /**
     * 通过Excel导入DataType
     *
     * @return 实列列表
     */
    List<ExampleResponseDto> importExample(List<ExampleEo> eoList);

    /**
     * 通过Excel导入DataType
     *
     * @param requestDto DataType请求实体
     */
    void exportExample(ExampleRequestDto requestDto);

    /**
     * 下载模板
     *
     * @param path 模板路径
     */
    void downloadTemplate(String path);




}